In existing software defined data center (SDDC) implementations, there are multi-tenancy supports for software defined storage (SDS) and a software defined network (SDN), respectively. Multi-tenancy refers to a software architecture paradigm whereby a single instance of an application (functional software program) executes on a server which serves multiple tenants (multiple clients/customers). With a multi-tenant architecture, an application virtually partitions its data and configuration, and each tenant operates with a customized virtual application instance.
Traditionally, there are two typical usage cases to provision storage to applications: (i) directly exporting a block or file interface to applications; and (ii) delegating storage management to intermediate nodes.
In the first usage case (direct export), storage arrays/servers export storage via Internet Small Computer System Interface (iSCSI)/Network File System (NFS)/Common Internet File System (CIFS) to end users. The requirement of such usage is that the storage arrays/servers be connected to the application's network.
In the second usage case (intermediate node storage), sometimes the storage arrays/servers are designed to be hidden from applications for security issues. Moreover, the application's network may be dynamic and invisible to the storage (e.g., applications running on mobile devices). Thus, applications need not be aware of the storage arrays/servers. In a practical system, a hypervisor is a suitable candidate to serve as an intermediate node. When storage is provisioned to a hypervisor, applications (e.g., virtual machines (VMs)) request the storage (e.g., virtual disk) from the hypervisor. Thus, the storage arrays/servers do not need to be aware of the virtual network where the VMs reside. Unfortunately, file storage (NFS/CIFS) may not be available to the application (VMs) under such an approach.
Of course, storage arrays/servers can still serve applications in a virtual network with the assistance of a hypervisor, as described above in the second usage case. But under such a situation, it is the hypervisor vendor that dictates the storage requirements to storage vendors.